System and methodology for video compression

ABSTRACT

A system and method for compressing video is disclosed, in which video frames that are only between consecutive I-frames are grouped into a video data set. The video data set is split into separate homogeneous files, and each of the homogeneous files are individually compressed. In one embodiment, the individually compressed files are multiplexed to form a bit stream.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of prior U.S. patent application Ser.No. 16/860,506, filed Apr. 28, 2020, which is a continuation of priorU.S. patent application Ser. No. 15/866,626, filed Jan. 10, 2018 (nowU.S. Pat. No. 10,674,176), which is a continuation of prior U.S. patentapplication Ser. No. 10/074,765, filed Feb. 12, 2002 (now U.S. Pat. No.9,894,379), which claims the benefit of U.S. Provisional Application No.60/304,135, filed Jul. 10, 2001. All sections of the aforementionedapplication(s) and/or patent(s) are incorporated herein by reference intheir entirety.

FIELD OF THE DISCLOSURE

The present invention relates to video compression and more particularlyto improving compression efficiency in motion-compensatedtransform-based encoders of video.

BACKGROUND OF THE DISCLOSURE

The most formidable challenge to the acceptance of digital videotechnology lies in the large data size of video content. For example, atwo-hour motion picture may use high resolution frames of 4000 pixels by3000 pixels, for a total of 12,000,000 pixels per frame. For highpicture quality, each pixel may comprise 10 bits of data in each ofthree-color spaces, e.g. Red-Green-Blue (RGB), and, for improved colorquality, there are plans to allocate even more bits per pixel. At 24frames per second, the entire two-hour movie would require over 8terabytes (8 trillion bytes), which is a substantial amount of storage.Accordingly, there has been much interest in compression techniques forvideo content.

Compression of video data typically exploits two types of redundancies:spatial and temporal. Reduction of spatial redundancy is achieved usingtransform coding, such as the discrete cosine transform (DCT), whichworks by decorrelating the input samples in every 8.times.8 block ofeach frame of video sequence. The coefficients are then zigzag scanned,quantized, and entropy encoded. Reduction of temporal redundancy, on theother hand, is achieved using motion-compensated predictive coding, inwhich the encoder estimates the motion between two frames by matchingeach block of the current frame with the previous frame. The residualframe after this matching step is then coded using DCT, and the motionvectors are coded as additional information. Major video codingstandards such as MPEG-1, MPEG-2, MPEG-4, H.261, H.263 and H.263+employsuch a motion-compensated transform-based coding approach.

Frames that are coded without any reference to previously coded framesare referred to as “Intra frames” (or I-frames). I-frames exploitspatial redundancy only using a transform coding such as DCT. Framesthat are coded using a previously coded frame are called “Inter” or“non-Intra” frames. Inter frames themselves can be of two types: (i)Predictive frames (P-frames), coded with respect to the immediatelyprevious I-frame or P-frame; and (ii) Bidirectionally predictive frames(B-frames), coded with respect to the immediately previous I-frame orP-frame as well as the immediately next P-frame or I-frame. In a typicalvideo coding scenario, I-frames are spaced a certain number of framesapart, with several P-frames and B-frames between two consecutiveI-frames. The spacing between consecutive I-frames is referred to as the“I-frame distance.” The main purposes of introducing periodic I-framesis to allow easy editing on the compressed video bit-stream andresynchronization of a transmitted compressed video bit-stream in caseone of the non-intra frames are accidentally dropped.

In a motion-compensated transform-based coder, motion vectors are firstestimated (except in the case of an I-frame) and the estimated motionvectors and motion compensation modes are entropy-encoded using variablelength coding. The motion-compensated residual frame (original frame inthe case of an I-frame) then undergoes an 8.times.8 block-DCTtransformation. The 8.times.8 block of DCT coefficients then undergoquantization, zigzag scanning, and a run-length followed by entropyencoding using variable length coding. Together, motion vectors,including motion compensation modes, and quantized DCT coefficients areused to reconstruct a lossy version of the original video sequence.

The variable-length coding for both motion vectors (and motioncompensation modes) and quantized DCT coefficients is done using look-uptables akin to Huffman coding on a frame-by-frame basis. Separatevariable code length look-up tables are provided under a few differentconditions, for example, separate VLC tables are provided forintra-coded blocks and for inter-coded blocks in the case of quantizedDCT coefficients. However, the number of different variable lengthcoding tables is small, and moreover, since they are optimized over alarge class of test video sequences, they are not necessarily close tooptimal for specific video sequences.

SUMMARY OF THE INVENTION

One aspect of the present invention relates to a system and method forcompressing video, in which video frames that between consecutiveI-frames are grouped into a video data set. The video data set is splitinto separate homogeneous files, and each of the homogeneous files areindividually compressed. In one embodiment, the individually compressedfiles are multiplexed to form a bit stream.

This aspect stems from the realization that previous implementations ofmotion-compensated transform-based coding compress the motion vectorsand the quantized DCT coefficients independently for each frame, withoutexploiting the knowledge of data history. For example, motion vectorsand modes often bear close resemblance across frames for similar regionsof a video sequence. The same is true regarding DCT coefficients.Accordingly, this aspect of the present invention exploits therepetitiveness of motion vectors and quantized DCT coefficients acrossframes by collecting those non-intra frames between two consecutiveI-frames into sets, referred to herein as “I-frame distance sets.”

Furthermore, the motion data information of each I-frame distance set issplit into a set of homogenous files, based on whether the componentrepresents horizontal or vertical motion, whether the frame is P- orB-type, and so on. For example, horizontal motion components for Pframes are stored in one file, while vertical motion components for Pframes are stored in another file. An additional file is formed thatstores the motion compensation modes. These files are then individuallycompressed using a suitable lossless data compression algorithm that canexploit data history from the beginning of each file. Because the filesare homogeneous, the statistical properties of all the data in eachseparate file are similar and the motion data can therefore becompressed to a much greater extent than if the motion data were notseparated.

In one embodiment, the quantized transform coefficient data, on theother hand, are first represented in a bit-plane fashion. The quantizedtransform coefficient data are split into a set of files correspondingto different bit-planes of the quantized transform coefficient data, andan additional file is formed that provides information about the numberof bit-planes for each block in a frame. These bit-plane files arefurther compressed using run-length encoding. The run-length encodedfiles and the additional file are then individually coded using asuitable lossless data compression algorithm that can exploit datahistory from the beginning of each file.

Still other aspects, features, and advantages of the present inventionare readily apparent from the following detailed description, simply byillustrating several embodiments and implementations, including the bestmode contemplated for carrying out the present invention. The presentinvention is also capable of other and different embodiments, and itsseveral details can be modified in various obvious respects, all withoutdeparting from the spirit and scope of the present invention.Accordingly, the drawing and description are to be regarded asillustrative in nature, and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 is a high-level flow chart illustrating the operation of oneembodiment of the present invention.

FIG. 2 is a flow diagram illustrating the analysis of video informationinto motion components and quantized discrete cosine transform (QDCT)coefficients in accordance with one embodiment of the present invention.

FIG. 3 is a flow diagram showing compression of motion components inaccordance with one embodiment of the present invention.

FIG. 4 is a flow diagram showing compression of QDCT coefficients inaccordance with one embodiment of the present invention.

FIG. 5 illustrates the multiplexing of compressed video components intoa bit stream in accordance with one embodiment of the present invention.

FIG. 6 depicts a computer system that can be used to implement anembodiment of the present invention.

DETAILED DESCRIPTION OF THE DRAWINGS

A system, method, and software for video compression are described. Inthe following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It is apparent, however, to oneskilled in the art that the present invention may be practiced withoutthese specific details or with an equivalent arrangement. In otherinstances, well-known structures and devices are shown in block diagramform in order to avoid unnecessarily obscuring the present invention.

In the following description, for the purposes of explanation, numerousspecific details are set forth with respect to an MPEG-4 based videoencoder. An MPEG-4 based video encoder has one or more layers (base andenhancement layers), where each layer is associated with its own set ofmotion vector (including motion compensation mode) and quantized DCTcoefficient data. The following description illustrates the details ofthe present invention for one such layer. The reference to MPEG-4 ismeant only to provide a thorough understanding of the present invention;however, the present invention is not limited to an MPEG-4 based videoencoder and may be advantageously used with any motion-compensatedtransform-based coding of video.

Functional Overview

In the Referring to FIG. 1, depicted is a high-level flow chartillustrating the operation of one embodiment of the present invention.At step 101, the non-intra frames that are between consecutive I-framesare collected into video data sets referred to herein as “I-framedistance sets.” Each I-frame distance set is then processed andcompressed in a loop (steps 103, 105, 107, and 109) and the results arethen multiplexed into a bit stream (step 111). Specifically, step 103controls a loop over each of the I-frame distance sets, in which motioncomponents and quantized coefficients are generated (step 105),separated into components (step 107), and separately compressed (step109).

At step 105, the video data in each I-frame distance set is analyzed togenerate motion components and quantized coefficients. FIG. 2 is a flowdiagram illustrating the analysis of video information into motioncomponents and quantized discrete cosine transform (QDCT) coefficientsin accordance with one embodiment of the present invention. The videoprocessing begins with the input video data 201 already transformed intothe appropriate color space, such as YUV which has been decorrelated toreduce the inter-color-axis correlation intrinsic to RGB. The video data201 are then modified (203) to account for motion compensation 221 fromthe previous frame and are then applied to a discrete cosine transform(DCT) coder (205), as performed, for example, in MPEG4. The DCTcoefficients output from the DCT coder 205 are quantized by quantizer207 to produce quantized transform coefficients 401.

The quantized transform coefficients 401 are then used to reconstructthe video frame, by passing through an inverse quantizer 209 and aninverse DCT 211. The reconstructed video frame is then added (213) to abuffered frame 215 that is saved for motion compensation purposes.Specifically, the buffered frame 215 is passed to a motion estimationblock 217, in which the inter-frame movements (with respect to theadjacent temporal base layer frames, or with respect to adjacenttemporal enhancement layer frames) are predicted and stored in a motiondata set 301. The motion vectors are also applied to the motioncompensator 219 which predicts the next frame based on the currentmotion vectors. The predicted frame is applied against the next frame ofthe input video data 201 at adder 203.

The motion estimation procedure 219 provides motion vector components inquarter pixel units, and the motion vector components are available assigned integers in the range of −2048 and +2047. However, mostcomponents tend to have small absolute values. Accordingly, in oneembodiment of the present invention, these integers are firstpreprocessed in order to represent them in a way that allows easyapplication of lossless data compression algorithm. In one suchimplementation, a signed integer say m, is mapped into a non-negativeinteger, t(m), according to a reversible rule: If m.gtoreq.0, thent(m)=2*m, else t(m)=−2*m−1. The odd bytes in resulting files tend toshow a great deal of sparseness, which can be compressed very much,because most or all odd bytes are typically zeroes.

Compression of Motion Data

FIG. 3 shows the separation (FIG. 1, step 107) and compression (FIG. 1,step 109) of the motion data. More specifically, each layer “I” of themotion components data 301 of an I-frame distance set is split intoseveral homogeneous files 311, 312, 313, 314, 315, 316, 317, and 318.The motion components data 301 of an I-frame distance set includesmotion compensation modes and motion vectors of non-intra frames betweentwo consecutive I-frames. In the following filenames, “i” stands for theindex of the intra-frame distance in the overall video sequence, and “l”stands for the layer. Advantageously, splitting serves to combine datacomponents of similar nature, making the resulting files homogenous, inthat the data components have similar statistical properties. Becausedata values tend to have similar statistical properties within such afile, a lossless compression algorithm can subsequently exploit thesimilarities for excellent compression performance.

The mode_P.l.i file 311 stores an integer (0, 1, or 4) corresponding tothe motion compensation mode used in each macroblock in a P-type frame.Mode 0 stands for intra, 1 stands for 16.times.16 motion vector, and 4stands for four motion vectors for each 8.times.8 block in eachmacroblock.

The mode_B.l.i file 312 holds an integer (0, 1, 2, or 3) correspondingto the motion compensation mode used in each macroblock in a B-typeframe. Mode 0 stands for a forward motion vector, 1 stands for abackward motion vector, 2 stands for a bidirectional motion vector, and3 stands for direct mode motion compensation.

The mvx_P.l.i file 313 stores the horizontal components of the motionvectors for the P-type frames. Preferably, these are differential motionvalues, obtained after intra-frame prediction. Intra-frame predictionexploits the two-dimensional redundancy in a causal neighborhood of thecurrent macroblock. Most lossless data compression algorithms areone-dimensional and cannot exploit this. The mvx_P.l.i file 314 storesthe vertical components of the motion vectors for the P-type frames.Like the mvx_P.l.i file 313, the mvx_P.l.i file 314 also preferablycomprises differential values after intra-frame prediction.

The mvx_B.l.i file 315 stores the horizontal components of the motionvectors corresponding to modes 0, 1, and 2 for the B-type frames. Themvx_B.l.i file 316 stores the vertical components of the motion vectorscorresponding to modes 0, 1, and 2 for the B-type frames. Both thesefiles are preferably formed of differential data after intra-frameprediction.

The mvx_B.sub.−3.l.i file 317 stores the horizontal components of themotion vectors corresponding to mode 3 (direct mode) for the B-typeframes. The mvx_B.sub.−3.l.i file 318 stores the vertical components ofthe motion vectors corresponding to modes 3 for the B-type frames. Themvx_B.sub.−3.l.i file 317 and the mvx_B.sub.−3.l.i file 318 arepreferably formed separately from the mvx_B.l.i file 315 and themvx_B.l.i file 316 because the differential motion vectors for directmode show distinctly different statistical properties than thenon-differential motion vectors for the other three modes.

Each set of these files 311, 312, 313, 314, 315, 316, 317, and 318comprises the motion data for the frames in an intra frame distance, andeach of these files are subsequently compressed using a respectivelossless compression step 321, 322, 323, 324, 325, 326, 327, and 328 toyield the following eight files: mode_P.l.i.comp 331, mode_B.l.i.comp332, mvx_P.l.i.comp 333, mvx_P.l.i.comp 334, mvx_B.l.i.comp 335,mvx_B.l.i.comp 336, mvx_B.sub.−3.l.i.comp 337, and mvx_B.sub.−3.l.i.comp338.

In one embodiment of the present invention, a grammar-based losslessdata compressing algorithm such as the “YK” algorithm is employed toimplement the lossless compression step 321, 322, 323, 324, 325, 326,327, and 328, although other embodiments may implement the losslesscompression step with other kinds of encoding, e.g. those employing aLempel-Ziv type algorithm or a Burrows-Wheeler transform. The YKalgorithm derives its name from the fact has been proposed by Dr. En-huiYang of Waterloo University and Dr. John C. Kieffer of the University ofMinnesota. A grammar-based code has two steps: first a grammar transformand then an arithmetic coding of the grammar. These two differentapproaches complement each other well. The grammar transform, which usesstring matching-based operations, handles the repetitive redundancy inthe original data, and the subsequent arithmetic coding handles thestatistical redundancy. Grammar-based codes have been shown toasymptotically achieve the entropy rate of a stationary, ergodic source.

In the framework of the YK grammar-based code, the original data isfirst transformed into an irreducible context-free grammar. A grammar isdefined by a source alphabet, a set of variables, and a set ofproduction rules that map each variable into a finite string of zero ormore symbols in the source alphabet or variables. The irreduciblecontext free grammar can be constructed by applying a greedy algorithm,which parses the incoming source string to find the longest prefix thatcorresponds to a grammar variable that has already been generated. Thisvariable is appended to the highest-level production rule, augmentingthe grammar. While the augmented grammar is admissible, the augmentedgrammar might not be irreducible, so reduction rules are applied toaugmented grammar to reduce the grammar to an irreducible grammar. Itcan be shown that a maximum of two application of reduction rules areneeded. The transformation of the original data into an irreduciblecontext-free grammar can be implemented in linear time.

Each irreducible grammar gives rise to a non-overlapping,variable-length parsing of the original data. Thus, after the grammarhas been produced, an arithmetic coding technique is applied to thecontext free grammar for compression. Unlike the Lempel-Ziv parsing,however, an unrestricted number of repetitions of a parsed phrase arepermitted, enabling the grammar-based code to benefit from thearithmetic coding step. (Because the number of repetitions of a parsedphrase is limited in a Lempel-Ziv encoding, the arithmetic coding stepneed not be used for Lempel-Ziv.) Yang has proposed three arithmeticcoding options to compress the grammar: a hierarchical algorithm, asequential algorithm, and an improved sequential algorithm. In empiricaltests of lossless video archiving, it has been found that the improvedsequential algorithm provides the best compression of the threetechniques. It is this improved sequential algorithm that is referred toas the “YK algorithm”.

During the operation of one implementation of a grammar-based code,three basic operations are repeatedly performed to encode the originaldata: parsing, updating, and arithmetic encoding. The parsing operationsearches for the longest prefix of the remaining part of the originaldata sequence that is represented by one of the existing variables inthe current grammar. The arithmetic encoding operation encodes theparsed phrase using frequency counts over an appropriately chosenalphabet. The updating operation subsequently updates the grammar afteradding the parsed substring and modifies the frequency distribution onthe source alphabet and set of variables.

To decode, an arithmetic decoding operation is sequentially applied todetermine the parsed substring, followed by an updating operation toproduce an identical sequence of grammars as in the encoder, from whichthe original data set is recovered incrementally. The decoding issimpler than the encoding because the parsing operation is not presentin the decoder.

There are several features of the YK algorithm that make it especiallysuitable beyond normal expectations for video compression. The YKalgorithm is sequential and, hence, does not require the whole datasequence to be present before commencing compression, thereby avoidinglatency. Our experimental results show that the YK algorithmsignificantly outperforms other kinds of lossless data compressionalgorithms such as Lempel-Ziv types of codes. The YK algorithm iseffective on a wide, virtually unlimited, range of data sizes, includingsmall files such as Internet datagrams, as well as large files such asin archiving applications, in marked contrast to non-sequential losslessdata compression algorithms such as those based on the Burrows-Wheelertransform, whose effectiveness only kicks at very large data sizes. Theimplementation complexity of the YK algorithm can be made close to thatof the Lempel-Ziv type algorithm. Error-handling features can be easilyincorporated into the YK decoder so that errors in the compressed bitstream can be neatly handled.

In a nutshell, the high compression efficiency of the YK algorithm isachieved through an optimally combined framework of string matching (viathe grammar data structure) and statistical encoding (via the arithmeticcoding) capabilities. By contrast, Lempel-Ziv type algorithms onlycapture string-matching redundancy, while pure arithmetic algorithmssuch as Huffman coding only capture statistical redundancy.

Experimental results indicate that the use of grammar-based codingresults in significantly better compression ratios than othercompression algorithms such as those of the Lempel-Ziv type or of theBurrows-Wheeler type. For example, on one test file, the grammar-basedcoding resulted in a compression ratio of 4.18 while BZIP2 and GZIPresulted in compression ratios of 3.32 and 2.43, respectively.

Compression of Transform Coefficients

Referring to FIG. 2, the quantized transform coefficients 401(preferably after DCAC prediction for intra-coded blocks, as used, e.g.,in MPEG4) are first transformed to make them all non-negative. In oneembodiment, the following mapping is used: If q.gtoreq.0, the mappedvalue is 2.times.q, else the mapped value is −2.times.q−1. Thenon-negative mapped quantized transform coefficients for each 8.times.8block are then ordered in zigzag fashion (e.g. the default scanningorder as in MPEG-4). The maximum number of bits required to representthe values in each block is recorded in the file qdct_bp.l.r.i 421(where “r” stands for one of the color components Y, Cb, or Cr). Thezigzag ordered data in each block then undergoes a bitplanetransformation 411. For each non-zero bitplane of each block, startingfrom the most significant bitplane, a run-length coding is performed byforming (RUN, EOP) symbols. The first component “RUN” denotes the numberof consecutive 0's before a 1, and the second component “EOP” is 1 ifthere are no more 1's in the current bitplane, otherwise “eop” is 0. Forthe purpose of subsequent lossless compression of the (RUN, EOP)symbols, these 2-D symbols are represented by integers, as follows: IfEOP=0, then the integer value is set to run; if EOP=1, the integer valueis set to RUN+64. If a bitplane has all zeros, then the integer 63 isused to represent the bitplane. The (RUN, EOP) symbols for the top threebitplanes are stored in the qdct_rl.sub.−0.l.r.i file 422, theqdct_rl.sub.−1.l.r.i file 423, and the qdct_rl.sub.−2.l.r.i file 424,respectively. The (RUN, EOP) symbols for the remaining bitplanes arestored in the qdct_rl.sub.−3.l.r.i 425.

The five files 421, 422, 423, 424, and 425 are then compressed byrespective lossless compression steps 431, 432, 433, 434, and 435,preferably using the YK algorithm. These steps result respectively inthe following five compressed files for each I-frame distance of a videosequence: the qdct_bp.l.r.i.comp file 441, the qdct_rl.sub.−0.l.r.i.compfile 442, the qdct_rl.sub.−1.l.r.i.comp file 443, theqdct_rl.sub.−2.l.r.i.comp file 444, the qdct_rl.sub.−3.l.r.i.comp file445.

Bit Stream Multiplexing

Referring to step 111 of FIG. 1, the compressed files are multiplexed toform a bit stream, which can be stored or transmitted. FIG. 5illustrates one implementation for multiplexing the compressed files toform the bit stream. In one embodiment, there are thirteen suchcompressed files for each I-frame distance set: eight files ofcompressed motion data shown in FIG. 3 and five files of compressedtransform coefficients shown in FIG. 4. More specifically, these filesinclude the mode_P.l.i.comp file 331, the mode_B.l.i.comp file 332, themvx_P.l.i.comp file 333, the mvx_P.l.i.comp file 334, the mvx_B.l.i.compfile 335, the mvx_B.l.i.comp file 336, the mvx_B.sub.−3.l.i.comp file337, the mvx_B.sub.−3.l.i.comp file 338, the qdct_bp.l.r.i.comp file441, the qdct_rl.sub.−0.l.r.i.comp file 442, theqdct_rl.sub.−1.l.r.i.c-omp file 443, the qdct_rl.sub.--2.l.r.i.comp file444, and the qdct_rl.sub.-3.l.r.i.comp file 445.

In addition, at step 501, an auxiliary file is generated, which containsauxiliary information that is useful or needed to correctly interpretthe rest of the files in the bit stream. Examples of information storedin the auxiliary file include frame width, frame height, quantizationparameters, and the size (in bytes) of the size header. The size headeris a value that is prefixed to each of the files in the bit stream toidentify the size of the corresponding file. For example, the size ofthe auxiliary file is computed and prefixed to the auxiliary file instep 503. The size header size is chosen to represent the sizes of eachof the constituent files of the bit stream. For example, if all the filesizes are guaranteed to bounded above by 4.times.10.sup.9 bytes, a sizeheader of four bytes is enough. Employing four-byte size headers yieldsa total of insignificant 56 bytes overhead for multiplexing all the 14files from each layer for an I-frame distance duration of the videosequence.

Step 505 controls a loop for multiplexing the remaining thirteencompressed files onto the compressed bit stream for each layer andI-frame distance. Each such file is prefixed with a size headerindicating the size of the compressed file (step 507) and are thenconcatenated to produce the bit-stream (step 509). This process isrepeated for different layers and I-frame distances until the entirevideo is multiplexed onto the bit-stream.

Decoding the bit stream involves performing the above-described functionin inverse order. More specifically, a demultiplexer reads the sizeheader, extracts the size information, and then uses the sizeinformation to extract an appropriate number of bits from the remainingbit-stream to be passed onto the next modules. A lossless decoderreceives each of the bit-stream data units that are passed to it by thedemultiplexer and decodes the unit. A run length decoder receivesoutputs of the lossless decoder module corresponding to the quantizedtransform coefficients data, which were compressed using a combinationof run-length-coding and YK algorithm. Finally, a quantized transformcoefficients decoder reverses the bit-plane coding of the quantizedtransform coefficients data.

Hardware Overview

FIG. 6 illustrates a computer system 600 upon which an embodimentaccording to the present invention can be implemented. The computersystem 600 includes a bus 601 or other communication mechanism forcommunicating information, and a processor 603 coupled to the bus 601for processing information. The computer system 600 also includes mainmemory 605, such as a random-access memory (RAM) or other dynamicstorage device, coupled to the bus 601 for storing information andinstructions to be executed by the processor 603. Main memory 605 canalso be used for storing temporary variables or other intermediateinformation during execution of instructions to be executed by theprocessor 603. The computer system 600 further includes a read onlymemory (ROM) 607 or other static storage device coupled to the bus 601for storing static information and instructions for the processor 603. Astorage device 609, such as a magnetic disk or optical disk, isadditionally coupled to the bus 601 for storing information andinstructions.

The computer system 600 may be coupled via the bus 601 to a display 611,such as a cathode ray tube (CRT), liquid crystal display, active matrixdisplay, or plasma display, for displaying information to a computeruser. An input device 613, such as a keyboard including alphanumeric andother keys, is coupled to the bus 601 for communicating information andcommand selections to the processor 603. Another type of user inputdevice is cursor control 615, such as a mouse, a trackball, or cursordirection keys for communicating direction information and commandselections to the processor 603 and for controlling cursor movement onthe display 611.

According to one embodiment of the invention, video compression isprovided by the computer system 600 in response to the processor 603executing an arrangement of instructions contained in main memory 605.Such instructions can be read into main memory 605 from anothercomputer-readable medium, such as the storage device 609. Execution ofthe arrangement of instructions contained in main memory 605 causes theprocessor 603 to perform the process steps described herein. One or moreprocessors in a multi-processing arrangement may also be employed toexecute the instructions contained in main memory 605. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the embodiment ofthe present invention. Thus, embodiments of the present invention arenot limited to any specific combination of hardware circuitry andsoftware.

The computer system 600 also includes a communication interface 617coupled to bus 601. The communication interface 617 provides a two-waydata communication coupling to a network link 619 connected to a localnetwork 621. For example, the communication interface 617 may be adigital subscriber line (DSL) card or modem, an integrated servicedigital network (ISDN) card, a cable modem, or a telephone modem toprovide a data communication connection to a corresponding type oftelephone line. As another example, communication interface 617 may be alocal area network (LAN) card (e.g. for Ethemet™. or an AsynchronousTransfer Model (ATM) network) to provide a data communication connectionto a compatible LAN. Wireless links can also be implemented. In any suchimplementation, communication interface 617 sends and receiveselectrical, electromagnetic, or optical signals that carry digital datastreams representing various types of information. Further, thecommunication interface 617 can include peripheral interface devices,such as a Universal Serial Bus (USB) interface, a PCMCIA (PersonalComputer Memory Card International Association) interface, etc.

The network link 619 typically provides data communication through oneor more networks to other data devices. For example, the network link619 may provide a connection through local network 621 to a hostcomputer 623, which has connectivity to a network 625 (e.g. a wide areanetwork (WAN) or the global packet data communication network nowcommonly referred to as the “Internet”) or to data equipment operated byservice provider. The local network 621 and network 625 both useelectrical, electromagnetic, or optical signals to convey informationand instructions. The signals through the various networks and thesignals on network link 619 and through communication interface 617,which communicate digital data with computer system 600, are exemplaryforms of carrier waves bearing the information and instructions.

The computer system 600 can send messages and receive data, includingprogram code, through the network(s), network link 619, andcommunication interface 617. In the Internet example, a server (notshown) might transmit requested code belonging an application programfor implementing an embodiment of the present invention through thenetwork 625, local network 621 and communication interface 617. Theprocessor 604 may execute the transmitted code while being receivedand/or store the code in storage device 69, or other non-volatilestorage for later execution. In this manner, computer system 600 mayobtain application code in the form of a carrier wave.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing instructions to the processor 604 forexecution. Such a medium may take many forms, including but not limitedto non-volatile media, volatile media, and transmission media.Non-volatile media include, for example, optical or magnetic disks, suchas storage device 609. Volatile media include dynamic memory, such asmain memory 605. Transmission media include coaxial cables, copper wireand fiber optics, including the wires that comprise bus 601.Transmission media can also take the form of acoustic, optical, orelectromagnetic waves, such as those generated during radio frequency(RF) and infrared (IR) data communications. Common forms ofcomputer-readable media include, for example, a floppy disk, a flexibledisk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM,CDRW, DVD, any other optical medium, punch cards, paper tape, opticalmark sheets, any other physical medium with patterns of holes or otheroptically recognizable indicia, a RAM, a PROM, and EPROM, a FLASH-EPROM,any other memory chip or cartridge, a carrier wave, or any other mediumfrom which a computer can read.

Various forms of computer-readable media may be involved in providinginstructions to a processor for execution. For example, the instructionsfor carrying out at least part of the present invention may initially beborne on a magnetic disk of a remote computer. In such a scenario, theremote computer loads the instructions into main memory and sends theinstructions over a telephone line using a modem. A modem of a localcomputer system receives the data on the telephone line and uses aninfrared transmitter to convert the data to an infrared signal andtransmit the infrared signal to a portable computing device, such as apersonal digital assistance (PDA) and a laptop. An infrared detector onthe portable computing device receives the information and instructionsborne by the infrared signal and places the data on a bus. The busconveys the data to main memory, from which a processor retrieves andexecutes the instructions. The instructions received by main memory mayoptionally be stored on storage device either before or after executionby processor.

Conclusion

A system and method for compressing video is described, in which videoframes that between consecutive I-frames are grouped into a video dataset. The video data set is split into separate homogeneous files, andeach of the homogeneous files are individually compressed, preferablyusing the YK algorithm or other grammar-based coding algorithm.

The combination of grouping related frames and then splitting thegrouped frames into homogeneous files can significantly improve thecompression efficiency over prior approaches. For example, on a10-second clip (at 30 frames per second, 352.times.288 pixel CIFresolution) of a low-motion, still background sequence of a talking head(as would be seen in a newscast), one embodiment of the presentinvention has produced improvements in compression of 8.80% over MPEG4,13.38% over MPEG2, and 11.20% over H.263+. Another example involves aclip of the same duration and resolution of person using sign language,resulting overall compression improvements of 6.25% over MPEG4, 7.96%over MPEG2, and 10.25% over H.263+. A third example with a clip that hasmuch motion, high spatial detail, and a moving camera resulted inoverall compression improvements of 8.34% over MPEG4, 14.47% over MPEG2,and 14.16% over H.263+.

While the present invention has been described in connection withseveral embodiments and implementations, the present invention is not solimited but covers various obvious modifications and equivalentarrangements, which fall within the purview of the appended claims.

What is claimed is:
 1. A method, comprising: splitting, by a processingsystem including a processor, a video data set into a plurality offiles, wherein the splitting comprises providing horizontal componentsof the video data set and vertical components of the video data set infirst separate files of the plurality of files, providing modeinformation of the video data set and motion components in secondseparate files of the plurality of files, providing B-frame componentsof the video data set and P-frame components of the video data set inthird separate files of the plurality of files, and providing mode 3B-frame components of the video data set and modes 0, 1, and 2 B-framecomponents of the video data set in fourth separate files of theplurality of files; and compressing, by the processing system, each ofthe plurality of files to create a plurality of compressed files.
 2. Themethod of claim 1, further comprising generating, by the processingsystem, an auxiliary file containing auxiliary information forinterpreting the plurality of compressed files.
 3. The method of claim2, wherein the auxiliary information comprises a frame width, a frameheight, a header size, quantization parameters, or a combinationthereof.
 4. The method of claim 1, wherein the first separate filescomprise transformation coefficients, the second separate files comprisemotion vectors, and the third separate files comprise enhancement data.5. The method of claim 4, further comprising: adding, by the processingsystem, a reconstructed video frame to a buffered frame, thereconstructed video frame created according to the transformationcoefficients; and generating, by the processing system and from thebuffered frame and the motion vectors, a predicted frame that may beapplied against a next frame of the video data set.
 6. The method ofclaim 1, wherein the compressing further comprises applying agrammar-based code.
 7. The method of claim 6, wherein the applyingfurther comprises employing a YK algorithm.
 8. The method of claim 1,wherein the compressing further comprises bit plane encoding quantizedtransform coefficients obtained from the video data set.
 9. The methodof claim 8, wherein the compressing further comprises performing a runlength encoding of bit planed encoded coefficients.
 10. A devicecomprising: a processing system including a processor; and a memory thatstores executable instructions that, when executed by the processingsystem, facilitate performance of operations, the operations comprising:splitting a video data set comprising a group of video frames that arebetween consecutive I-frames into a plurality of files, wherein thesplitting comprises storing horizontal components of the video data setand vertical components of the video data set in first separate files ofthe plurality of files, storing mode information of the video data setand motion components in second separate files of the plurality offiles, storing B-frame components of the video data set and P-framecomponents of the video data set in third separate files of theplurality of files, and storing mode 3 B-frame components of the videodata set and mode 0, 1, and 2 B-frame components of the video data setin fourth separate files of the plurality of files; and individuallycompressing each of the plurality of files to create a plurality ofcompressed files.
 11. The device of claim 10, wherein the operationsfurther comprise generating an auxiliary file containing auxiliaryinformation for interpreting the plurality of compressed files, whereinthe auxiliary information comprises a frame width, a frame height, aheader size, quantization parameters, or a combination thereof.
 12. Thedevice of claim 10, wherein the operations further comprise: usingtransformation coefficients to create a reconstructed video frame of thevideo data set; adding the reconstructed video frame to a bufferedframe; generating, from the buffered frame and motion vectors, apredicted frame; and applying the predicted frame against a next frameof the video data set.
 13. The device of claim 10, wherein thecompressing further comprises applying a grammar-based code.
 14. Thedevice of claim 10, wherein the compressing further comprises bit planeencoding quantized transform coefficients obtained from the video dataset.
 15. A non-transitory, machine-readable medium comprising executableinstructions that, when executed by a processing system including aprocessor, facilitate performance of operations, the operationscomprising: splitting a video data set comprising a group of videoframes that are between consecutive I-frames into a plurality of files,wherein the splitting comprises storing horizontal components of thevideo data set and vertical components of the video data set in firstseparate files, storing mode information of the video data set andmotion components in second separate files, storing B-frame componentsof the video data set and P-frame components of the video data set inthird separate files, and storing mode 3 B-frame components of the videodata set and mode 0, 1, and 2 B-frame components of the video data setin fourth separate files; individually compressing each of the pluralityof files to create a plurality of compressed files; and concatenatingeach compressed file of the plurality of compressed files to produce abit stream.
 16. The non-transitory, machine-readable medium of claim 15,wherein the operations further comprise: generating, by the processingsystem, an auxiliary file containing auxiliary information forinterpreting the compressed files in the bit stream.
 17. Thenon-transitory, machine-readable medium of claim 16, wherein theauxiliary information comprises a frame width, a frame height, a headersize, quantization parameters, or a combination thereof
 18. Thenon-transitory, machine-readable medium of claim 15, wherein theoperations further comprise: using transformation coefficients to createa reconstructed video frame of the video data set; adding thereconstructed video frame to a buffered frame; generating, from thebuffered frame and motion vectors, a predicted frame; and applying thepredicted frame against a next frame of the video data set.
 19. Thenon-transitory, machine-readable medium of claim 15, wherein thecompressing further comprises applying a grammar-based code.
 20. Thenon-transitory, machine-readable medium of claim 15, storing enhancementdata in fifth separate files, and wherein the operations furthercomprise: generating an auxiliary file containing auxiliary informationfor interpreting the plurality of compressed files in the bit stream.